package org.tang.hool.bean;

/**
 * Bean的工厂接口，创建并缓存实例，提供获取实例的方法
 *
 * @author Tang Jiujia
 * @since 2022/5/5
 */
public interface BeanFactory {

    /**
     * 根据实例名称获取实例
     *
     * @param beanName 实例名
     * @author Tang Jiujia
     * @since 2022/5/5
     */
    Object getBean(String beanName);

    /**
     * 根据实例的class类型获取实例
     *
     * @param beanClass 实例类型
     * @author Tang Jiujia
     * @since 2022/5/5
     */
    Object getBean(Class<?> beanClass);
}
